package GUI;
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import Model.TaskGenerator;
import Model.TaskScheduler;
/**
* Creates the GUI for the simulation
*
* @author Dariana Lupea
*
*/
public class SimulationFrame extends JFrame implements ActionListener {
JFrame f = new JFrame();
private JPanel panel, content, servers, tasks;
private JButton startButton;
private JTextField field1, field2, field3, field4, field5, field6;
private JButton b1, b2, b3, b4, b5, b6;
public SimulationFrame() {
super("Simulation");
f.setLayout(new BorderLayout());
panel = new JPanel();
content = new JPanel();
servers = new JPanel();
tasks = new JPanel();
//content.setBounds(200, 100,250, 500);
b1 = new JButton("Min Arrival Time");
b2 = new JButton("Max Arrival Time");
b3 = new JButton("Min Service Time");
b4 = new JButton("Max Service Time");
b5 = new JButton("Simulation Time");
b6 = new JButton("No of queues");
startButton = new JButton("Start Simulation!");
startButton.addActionListener(this);
field1 = new JTextField(" ");
field2 = new JTextField(" ");
field3 = new JTextField(" ");
field4 = new JTextField(" ");
field5 = new JTextField(" ");
field6 = new JTextField(" ");
b1.setBounds(20, 20, 130, 30);
b2.setBounds(170, 20, 130, 30);
b3.setBounds(320, 20, 140, 30);
b4.setBounds(470, 20, 140, 30);
b5.setBounds(620, 20, 130, 30);
b6.setBounds(770, 20, 130, 30);
startButton.setBounds(920, 30, 130, 30);
field1.setBounds(50, 50, 80, 30);
field2.setBounds(200, 50, 80, 30);
field3.setBounds(350, 50, 80, 30);
field4.setBounds(500, 50, 80, 30);
field5.setBounds(650, 50, 80, 30);
field6.setBounds(800, 50, 80, 30);
f.add(b1);
f.add(b2);
f.add(b3);
f.add(b4);
f.add(b5);
f.add(b6);
f.add(startButton);
f.add(field1);
f.add(field2);
f.add(field3);
f.add(field4);
f.add(field5);
f.add(field6);
f.add(panel);
f.setVisible(true);
f.setSize(1100, 700);
f.setDefaultCloseOperation(EXIT_ON_CLOSE);
f.setLocationRelativeTo(null);
}
@Override
public void actionPerformed(ActionEvent event) {
// TODO Auto-generated method stub
int minArrival = getInput(field1);
int maxArrival = getInput(field2);
int minService = getInput(field3);
int maxService = getInput(field4);
int simulationTime = getInput(field5);
int noOfQueues = getInput(field6);
if (event.getSource() == startButton) {
TaskGenerator taskGen = new TaskGenerator(minArrival, maxArrival, minService, maxService);
TaskScheduler scheduler = new TaskScheduler(noOfQueues, taskGen, simulationTime);
Thread th = new Thread(scheduler);
th.start();
// servers.setLayout(new GridLayout(noOfQueues, 1));
// tasks.setLayout(new GridLayout(noOfQueues, 1));
// content.setLayout(new GridLayout(1, 2));
// for (int i = 0; i < noOfQueues; i++) {
// JLabel label = new JLabel(" Server " + i);
// servers.add(label);
// }
//
// content.add(tasks);
// content.add(servers);
// f.add(content);
//// displayData(scheduler.getAvailableServer().getTasks());
// Thread th = new Thread(scheduler);
// th.start();
}
}
public int getInput(JTextField field) {
String input = (field.getText()).trim();
int number = Integer.parseInt(input);
return number;
}
}